@startuml
namespace logging {
    class LoggingIndexAlias << (S,Aquamarine) >> {
        + Index string
        + Alias string

    }
    class LoggingRepository << (S,Aquamarine) >> {
        - log *zap.SugaredLogger
        - client *opensearch.Client

        + CreateUser(username string, password string) *LoggingRequestResult
        + MapUserRole(username string, roleName string) *LoggingRequestResult
        + CreateRole(roleName string, indexPatterns []string) *LoggingRequestResult
        + UpdateRole(roleName string, indexPatterns []string) *LoggingRequestResult
        + CreateIndexPattern(p string, timeField string, dashBoardClient *opensearch.Client) *LoggingRequestResult

    }
    interface LoggingRequest  {
        + Do(ctx context.Context, transport opensearchapi.Transport) (*opensearchapi.Response, error)

    }
    class LoggingRequestResult << (S,Aquamarine) >> {
        - client *opensearch.Client

        + LR LoggingRequest
        + Err error
        + Responce *opensearchapi.Response

    }
}


@enduml
